#!/usr/bin/python
# -*- coding: utf-8 -*-

import pygame
from pygame.sprite import Sprite
from pygame.locals import Rect
from pygame.color  import Color
from pygame.font   import Font

import time

class ScoreDisplay( Sprite ):
    """
    Responsável por mostrar os placares e o tempo.
    """
    p1    = 0
    p2    = 0
    time  = None
    rect  = None
    font  = None
    color = None

    def __init__( self, area, font=None, fsize=32,
                  fgcolor="0xffff00", bgcolor="0x000000" ):
        """
        Cria um novo placar que usará a fonte 'font' com o tamanho 'fsize',
        cor de letra 'fgcolor' e de fundo 'bgcolor', contido na área 'area'.
        """
        Sprite.__init__( self )
        self.start()
        self.rect    = Rect( area )
        self.bgcolor = Color( bgcolor )
        self.fgcolor = Color( fgcolor )
        self.font    = Font( font, fsize )
    # __init__()



    def start( self ):
        """Inicia Contagem de tempo."""
        self.time = time.time()
    # start()


    def draw( self, screen ):
        # Limpa o fundo
        screen.fill( self.bgcolor, self )

        # mostra pontos do jogador 1
        r = self.font.render( "%03d" % self.p1, True,
                              self.fgcolor, self.bgcolor )
        screen.blit( r, self )

        # mostra pontos do jogador 2
        r = self.font.render( "%03d" % self.p2, True,
                              self.fgcolor, self.bgcolor )
        screen.blit( r, ( self.rect.right - r.get_rect().width, 0 ) )

        # mostra tempo
        t = time.strftime( "%M:%S", time.gmtime( time.time() - self.time ) )
        r = self.font.render( t, True,
                              self.fgcolor, self.bgcolor )
        screen.blit( r, ( self.rect.centerx - r.get_rect().width / 2, 0 ) )
    # draw()
# ScoreDisplay
